package org.example.codegenerate.modelext.WebVo.annotation.table;


import org.example.codegenerate.modelext.WebVo.Enum.EnumTableType;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.*;

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RetentionPolicy.RUNTIME)
public @interface TVo {
     String entityName() ;// 页面上    实体类名
     String tableName() default "";//表名 value = test_order_main                   页面-表名
    // Integer tableType();//表类型 表类型: 0单表、1主表、2附表             页面-表类型
     EnumTableType enumTableType() default EnumTableType.SINGLETABLE;
    // Integer tableVersion();//表版本号
     String tableTxt();//表说明                                           页面-表描述
    // String isCheckbox();//是否带checkbox                                  显示复选框
    // String isDbSynch();//同步数据库状态，默认为"N"                         页面上没有输入，后面有一个专门的动作
    // String isPage();//是否分页                                              是否分页
     String isTree() default "";//是否是树                                              是否树
    // String idSequence();//主键生成序列,默认为null
    // String idType();//主键类型 UUID                                        主键策略
     String queryMode() default "";//查询模式 single 或group
    // String formCategory();//表单分类，默认'bdfl_ptbd'                      表单分类-官方示例、测试表单、流程表单、导入表单
       String formTemplate() default "1";//PC表单模板                                      主题模板--默认主题，只有1个
    // String themeTemplate();//主题模板 ，normal，innerTable
    // String formTemplateMobile();//表单模板样式(移动端)
    //没有表单风格 ，1列，2列，3列，4列
    // Integer copyType();//复制表类型1为复制表 0为原始表
    // Integer copyVersion();//复制版本号
    // String physicId();//原始表ID
    // transient Integer hascopy();// 不需要在数据库保存，因为有transient
     int scroll() default 1;//是否有横向滚动条  ，1，0                                     滚动条：有 无
    // transient String taskId();//不需要在数据库保存，因为有transient
    // String isDesForm();//是否用设计器表单
    // String desFormCode();//设计器表单编码
     String treeParentIdField() default ""; //                                           页面  树表单父ID ,pid
     String treeIdField() default "";// has_child
     String treeFieldname() default "";//name ，type_name

    //子表的时候用到
     int relationType() default 0;//1,0,null    页面上，1对1 ，还是1对多
     int tabOrderNum() default 0;//1,2,3,null    页面上序号
     
     String[] foreignKeys() default {};
     
     String[] foreignMainKeys() default {};
}
